/*
 * =====================================================================================
 *
 *       Filename:  tuple.h
 *
 *    Description:  abstract for the 4 tuple of human model
 *
 *        Version:  1.0
 *        Created:  07/29/09 09:29:05
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Gestrom Drawn (mn), zhcfreesea@gmail.com
 *        Company:  zhc
 *
 * =====================================================================================
 */

#ifndef _TUPLE_BASE_H
#define _TUPLE_BASE_H

//class TupleBase abstract the 4 tuple in human model
typedef unsigned int Time;
template <class _Action, class _Excitation, class _State>
class TupleBase{
    protected:
        _Action _action;
        _Excitation _excitation;
        _State _state;
        Time _time;
    public:
        TupleBase():_time(0) {}
        //TupleBase(Action action_, Excitation excitation_, State state_, Time time_):
        //    _action(action_), _excitation(excitation_), _state(state_), _time(time_) {}

        virtual void show_tuple(void) = 0;
        virtual void update(void) = 0;
        Time get_time(void){return _time;}
};

#endif
